/**
 *  @file .
 *  @author wangxiaowei <wangxiaowei0303@163.com>
 *  @date 2015-02-27-12.04
 *  CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
 */

#ifndef org_wxw_stl_study_include_bits_cpp_type_traits_h_
#define org_wxw_stl_study_include_bits_cpp_type_traits_h_

namespace std{

/**
 *  __true_type,__false_type 表示"真","假"的类型;对于 __true_type,__false_type
 *  对象来说,对象本身是没有意义的,对象的类型才是最居意义的.
 */
struct __false_type{};
struct __true_type{};

/**
 *  该模板类用来测试类型 Type 是否是整型.若 Type 是整型,则
 *    __is_integer<Type>::__value 取值为 1(否则取0).
 *    __is_integer<Type>::__type 的实际类型是 __truetype(否则为 __false_type);
 *  其实现方式,针对是整型的类型进行特化,如下 __is_integer<int>;
 */
template<typename Type>
struct __is_integer{
    enum { __value = 0 };
    typedef __false_type __type;
};

template<>
struct __is_integer<int>{
    enum { __value = 1 };
    typedef __true_type __type;
};




};


#endif // org_wxw_stl_study_include_bits_cpp_type_traits_h_
